#ifndef RPG_OBJECT_ORZ
#define RPG_OBJECT_ORZ
#include "../base/rpg_base.h"

#define __OBJ_VALUE(obj,v)	obj->##v##.value
#define __OBJ_ATTACK(obj,element) obj->Obj_##element##_attack()
#define __OBJ_DEFENSE(obj,element) obj->Obj_##element##_defense()

class RPG_Object
{
public:
	RPG_Object();
	virtual ~RPG_Object();

public:
	char name[20];
	char description[256];

public:
	RPG_HP hp;
	RPG_MP mp;

public:
	RPG_Element fire;
	RPG_Element water;
	RPG_Element darkness;
	RPG_Element holy;

public:
	RPG_Attack	attack;
	RPG_Defense defense;

public:
	virtual int Obj_fire_attack();
	virtual int Obj_water_attack();
	virtual int Obj_darkness_attack();
	virtual int Obj_holy_attack();

	virtual int Obj_fire_defense();
	virtual int Obj_water_defense();
	virtual int Obj_darkness_defense();
	virtual int Obj_holy_defense();

public:
	void setHpMp(int hp,int mp);
	void setElement(int fire,int water,int darkness,int holy);
	void setAttackAndDefense(int attack,int defense);

public:
	bool setName(char* name);
	bool setDescription(char* description);
};

#endif